Computer networks are becoming increasingly complex, often involving low level as well as high level configurations at various layers of the network. For example, computer networks generally include numerous access policies, forwarding policies, routing policies, security policies, etc., which together define the overall behavior and operation of the network. Network operators have a wide array of configuration options for tailoring the network to the needs of the users. While the different configuration options available provide network operators a great degree of flexibility and control over the network, they also add to the complexity of the network. In many cases, the configuration process can become highly complex. Not surprisingly, the network configuration process is increasingly error prone. In addition, troubleshooting errors in a highly complex network can be extremely difficult. The process of understanding the network configurations and topology in a large network, and identifying the root cause of undesired behavior can be a daunting task.
Moreover, the amount of data relating to the network can be prohibitively large, increasing exponentially with time. For example, some services and/or systems generate a large amount of time-based data (e.g., a large set of data for each of several time periods) in over to track the configuration and health of a network fabric over time. However, it is difficult for users to get a good overall view of the voluminous data, insight into particular epochs of interest, and/or quickly select sets of data to investigate.
There is therefore a need to address the above problems for services and/or systems that generate large amounts of time-based data.